package com.eliza.spring.cloud.eureka.provider.config

import org.springframework.boot.web.client.RestTemplateBuilder
import org.springframework.cloud.client.loadbalancer.LoadBalanced
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import org.springframework.web.client.RestTemplate

@Configuration
class CreateBean {
    //    当在springboot1.4以及以后的版本中，需要手动创建一个RestTemplate的配置：
    // 使用RestTemplateBuilder来实例化RestTemplate对象，spring默认已经注入了RestTemplateBuilder实例
    @Bean
    @LoadBalanced //restTemplate 发起的请求 会被 Ribbon拦截处理

    fun restTemplate(builder: RestTemplateBuilder): RestTemplate {
        return builder.build()
//        return RestTemplate()
    }

/*
        <!--
        注册使用 eureka
        spring-cloud-starter-netflix-eureka-client 3.0以上默认不再集成Ribbon而改为集成spring-cloud-starter-loadbalancer
        -->

  @Bean
    fun iRule(): IRule {
        //默认为轮询规则，这里自定义为随机规则
        return RandomRule()
    }

    */

}